home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / intuisup.lha / Intuisup / Library / BenchmarkModula / IntuiSupInterface.mod < prev    next >
Text File  |  1992-06-20  |  15KB  |  624 lines

  1. (*
  2.                      IntuiSup library interface
  3.  
  4.               Para usar con Modula-2 Software Construction Set                
  5.    -----------------------------------------------------------------------
  6.  
  7.     por:   Mauricio Hunt R.
  8.                Apt 856 - 2150, Moravia,
  9.                San Jose, Costa Rica
  10.                Central America
  11.  
  12.    -----------------------------------------------------------------------
  13.  
  14.         Intuisup library por:
  15.  
  16.     Torsten Jürgeleit
  17.     Am Sandberg 4
  18.     W-5270 Gummersbach
  19.     Germany
  20.  
  21.    Gracias Torsten !
  22. *)
  23.  
  24. IMPLEMENTATION MODULE IntuiSupInterface;
  25.  
  26. FROM SYSTEM    IMPORT ADDRESS, INLINE, SETREG, ADR, REG, LONG, LONGWORD;
  27. FROM Intuition IMPORT IDCMPFlags, IDCMPFlagsSet, ImagePtr, ScreenPtr, 
  28.                   WindowPtr, NewWindow, MenuPtr, MenuItemPtr, IntuiMessagePtr,
  29.                   GadgetPtr;
  30. FROM Text      IMPORT TextAttrPtr, TextFontPtr;
  31. FROM DiskFont  IMPORT AvailFontsHeaderPtr;
  32. FROM Lists     IMPORT ListPtr;
  33. FROM Ports     IMPORT MsgPortPtr;
  34. FROM Libraries IMPORT OpenLibrary, CloseLibrary, LibraryPtr;
  35.  
  36. CONST
  37.   D0=0;  D1=1;  D2=2;  D3=3;  D4=4;  D5=5;  D6=6;  D7=7;
  38.   A0=8;  A1=9;  A2=10; A3=11; A4=12; A5=13; A6=14; A7=15;
  39.  
  40.   JSRA6     = 4EAEH;
  41.  
  42.   LVOIGetRenderInfo          = -30;
  43.   LVOIFreeRenderInfo         = -36;
  44.   LVOIOpenWindow             = -42;
  45.   LVOIClearRenderWindow      = -48;
  46.   LVOICloseWindow            = -54;
  47.   LVOIAvailFonts             = -60;
  48.   LVOIAskFont                = -66;
  49.   LVOIOpenFont               = -72;
  50.   LVOIDisplayTexts           = -78;
  51.   LVOIPrintText              = -84;
  52.   LVOIConvertUnsignedDec     = -90;
  53.   LVOIConvertSignedDec       = -96;
  54.   LVOIConvertHex             = -102;
  55.   LVOIConvertBin             = -108;
  56.   LVOIDisplayBorders         = -114;
  57.   LVOIDrawBorder             = -120;
  58.   LVOICreateGadgets          = -126;
  59.   LVOIFreeGadgets            = -132;
  60.   LVOIDisplayGadgets         = -138;
  61.   LVOIRefreshGadgets         = -144;
  62.   LVOIModifyGadget           = -150;
  63.   LVOISetGadgetAttributes    = -156;
  64.   LVOIActivateInputGadget    = -162;
  65.   LVOIGadgetAddress          = -168;
  66.   LVOIRemoveGadgets          = -174;
  67.   LVOIGetMsg                 = -180;
  68.   LVOIReplyMsg               = -186;
  69.   LVOIAutoRequest            = -192;
  70.   LVOIDisplayRequester       = -198;
  71.   LVOIRemoveRequester        = -204;
  72.   LVOICreateMenu             = -210;
  73.   LVOIAttachMenu             = -216;
  74.   LVOIMenuItemAddress        = -222;
  75.   LVOIRemoveMenu             = -228;
  76.   LVOIFreeMenu               = -234;
  77.   LVOIOpenTextFile           = -240;
  78.   LVOIReadTextLine           = -246;
  79.   LVOICloseTextFile          = -252;
  80.   LVOIBuildLanguageTextArray = -258;
  81.   LVOIGetLanguageText        = -264;
  82.   LVOIFreeLanguageTextArray  = -270;
  83.   LVOIChangeMousePointer     = -276;
  84.   LVOIRestoreMousePointer    = -282;
  85.   LVOIMoveMousePointer       = -288;
  86.   LVOIConvertRawKeyToASCII   = -294;
  87.  
  88. PROCEDURE IGetRenderInfo(screen : ScreenPtr; flags : CARDINAL):ADDRESS;
  89.  
  90. BEGIN
  91.   SETREG(A6,IntuiSupBase);
  92.   SETREG(A0,screen);
  93.   SETREG(D0,LONG(flags));
  94.   INLINE(JSRA6,LVOIGetRenderInfo);
  95.   RETURN ADDRESS(REG(D0));
  96. END IGetRenderInfo;
  97.  
  98. PROCEDURE IFreeRenderInfo(ri:ADDRESS);
  99.  
  100. BEGIN
  101.   SETREG(A6,IntuiSupBase);
  102.   SETREG(A0,ri);
  103.   INLINE(JSRA6,LVOIFreeRenderInfo);
  104. END IFreeRenderInfo;
  105.  
  106. PROCEDURE IOpenWindow(ri:ADDRESS; nw:NewWindow; flags:CARDINAL):WindowPtr;
  107.  
  108. BEGIN
  109.   SETREG(A6,IntuiSupBase);
  110.   SETREG(A0,ri);
  111.   SETREG(A1,ADR(nw));
  112.   SETREG(D0,LONG(flags));
  113.   INLINE(JSRA6,LVOIOpenWindow);
  114.   RETURN WindowPtr(REG(D0))
  115. END IOpenWindow;
  116.  
  117. PROCEDURE IClearRenderWindow(ri:ADDRESS; win:WindowPtr; 
  118.                              leftedge, topedge, width, height,
  119.                              flags:LONGCARD);
  120.  
  121. BEGIN
  122.   SETREG(A6,IntuiSupBase);
  123.   SETREG(A0,ri);
  124.   SETREG(A1,win);
  125.   SETREG(D0,leftedge);
  126.   SETREG(D1,topedge);
  127.   SETREG(D2,width);
  128.   SETREG(D3,height);
  129.   SETREG(D4,flags);
  130.   INLINE(JSRA6,LVOIClearRenderWindow);
  131. END IClearRenderWindow;
  132.  
  133. PROCEDURE ICloseWindow(win:WindowPtr; morewindows:BOOLEAN);
  134.  
  135. BEGIN
  136.   SETREG(A6,IntuiSupBase);
  137.   SETREG(A0,win);
  138.   SETREG(D0,LONG(morewindows));
  139.   INLINE(JSRA6,LVOICloseWindow);
  140. END ICloseWindow;
  141.  
  142. PROCEDURE IAvailFonts(ri:ADDRESS):AvailFontsHeaderPtr;
  143.  
  144. BEGIN
  145.   SETREG(A6,IntuiSupBase);
  146.   SETREG(A0,ri);
  147.   INLINE(JSRA6,LVOIAvailFonts);
  148.   RETURN AvailFontsHeaderPtr(REG(D0))
  149. END IAvailFonts;
  150.  
  151. PROCEDURE IAskFont(ri:ADDRESS; ta:TextAttrPtr):TextAttrPtr;
  152.  
  153. BEGIN
  154.   SETREG(A6,IntuiSupBase);
  155.   SETREG(A0,ri);
  156.   SETREG(A1,ta);
  157.   INLINE(JSRA6,LVOIAskFont);
  158.   RETURN TextAttrPtr(REG(D0))
  159. END IAskFont;
  160.  
  161. PROCEDURE IOpenFont(ri:ADDRESS; ta:TextAttrPtr):TextFontPtr;
  162.  
  163. BEGIN
  164.   SETREG(A6,IntuiSupBase);
  165.   SETREG(A0,ri);
  166.   SETREG(A1,ta);
  167.   INLINE(JSRA6,LVOIOpenFont);
  168.   RETURN TextFontPtr(REG(D0))
  169. END IOpenFont;
  170.  
  171. PROCEDURE IDisplayTexts(ri:ADDRESS; win:WindowPtr; td:TextDataPtr;
  172.                         hoffset:INTEGER; voffset:INTEGER;
  173.                         languagetextarray:DADDRESS);
  174.  
  175. BEGIN
  176.   SETREG(A6,IntuiSupBase);
  177.   SETREG(A0,ri);
  178.   SETREG(A1,win);
  179.   SETREG(A2,td);
  180.   SETREG(D0,LONG(hoffset));
  181.   SETREG(D1,LONG(voffset));
  182.   SETREG(A3,languagetextarray);
  183.   INLINE(JSRA6,LVOIDisplayTexts)
  184. END IDisplayTexts;
  185.  
  186. PROCEDURE IPrintText(ri:ADDRESS; win:WindowPtr; text:ADDRESS;
  187.                      leftedge, topedge, type:CARDINAL; flags:LONGCARD;
  188.                      textattr : TextAttrPtr):CARDINAL;
  189.  
  190. BEGIN
  191.   SETREG(A6,IntuiSupBase);
  192.   SETREG(A0,ri);
  193.   SETREG(A1,win);
  194.   SETREG(A2,text);
  195.   SETREG(D0,LONG(leftedge));
  196.   SETREG(D1,LONG(topedge));
  197.   SETREG(D2,LONG(type));
  198.   SETREG(D3,flags);
  199.   SETREG(A3,textattr);
  200.   INLINE(JSRA6,LVOIPrintText);
  201.   RETURN CARDINAL(REG(D0))
  202. END IPrintText;
  203.  
  204. PROCEDURE IConvertUnsignedDec(num:LONGCARD; buffer:ADDRESS; flags:CARDINAL):CARDINAL;
  205.  
  206. BEGIN
  207.   SETREG(A6,IntuiSupBase);
  208.   SETREG(D0,num);
  209.   SETREG(A0,buffer);
  210.   SETREG(D1,LONG(flags));
  211.   INLINE(JSRA6,LVOIConvertUnsignedDec);
  212.   RETURN CARDINAL(REG(D0));
  213. END IConvertUnsignedDec;
  214.  
  215. PROCEDURE IConvertSignedDec(num:LONGINT; buffer:ADDRESS; flags:CARDINAL):CARDINAL;
  216.  
  217. BEGIN
  218.   SETREG(A6,IntuiSupBase);
  219.   SETREG(D0,num);
  220.   SETREG(A0,buffer);
  221.   SETREG(D1,LONG(flags));
  222.   INLINE(JSRA6,LVOIConvertSignedDec);
  223.   RETURN CARDINAL(REG(D0));
  224. END IConvertSignedDec;
  225.  
  226. PROCEDURE IConvertHex(num:LONGCARD; buffer:ADDRESS; flags:CARDINAL):CARDINAL;
  227.  
  228. BEGIN
  229.   SETREG(A6,IntuiSupBase);
  230.   SETREG(D0,num);
  231.   SETREG(A0,buffer);
  232.   SETREG(D1,LONG(flags));
  233.   INLINE(JSRA6,LVOIConvertHex);
  234.   RETURN CARDINAL(REG(D0));
  235. END IConvertHex;
  236.  
  237. PROCEDURE IConvertBin(num:LONGCARD; buffer:ADDRESS; flags:CARDINAL):CARDINAL;
  238.  
  239. BEGIN
  240.   SETREG(A6,IntuiSupBase);
  241.   SETREG(D0,num);
  242.   SETREG(A0,buffer);
  243.   SETREG(D1,LONG(flags));
  244.   INLINE(JSRA6,LVOIConvertBin);
  245.   RETURN CARDINAL(REG(D0));
  246. END IConvertBin;
  247.  
  248. PROCEDURE IDisplayBorders(ri:ADDRESS; win:WindowPtr; bd:BorderDataPtr;
  249.                           hoffset, voffset:INTEGER);
  250.  
  251. BEGIN
  252.   SETREG(A6,IntuiSupBase);
  253.   SETREG(A0,ri);
  254.   SETREG(A1,win);
  255.   SETREG(A2,bd);
  256.   SETREG(D0,LONG(hoffset));
  257.   SETREG(D1,LONG(voffset));
  258.   INLINE(JSRA6,LVOIDisplayBorders);
  259. END IDisplayBorders;
  260.  
  261. PROCEDURE IDrawBorder(ri:ADDRESS; win:WindowPtr; leftedge, topedge,
  262.                       width, height, type:LONGCARD);
  263.  
  264. BEGIN
  265.   SETREG(A6,IntuiSupBase);
  266.   SETREG(A0,ri);
  267.   SETREG(A1,win);
  268.   SETREG(D0,leftedge);
  269.   SETREG(D1,topedge);
  270.   SETREG(D2,width);
  271.   SETREG(D3,height);
  272.   SETREG(D4,type);
  273.   INLINE(JSRA6,LVOIDrawBorder)
  274. END IDrawBorder;
  275.  
  276. PROCEDURE ICreateGadgets(ri:ADDRESS; gd:GadgetDataPtr; 
  277.                          hoffset, voffset:INTEGER;
  278.                          languagetextarray:DADDRESS):ADDRESS;
  279.  
  280. BEGIN
  281.   SETREG(A6,IntuiSupBase);
  282.   SETREG(A0,ri);
  283.   SETREG(A1,gd);
  284.   SETREG(D0,LONG(hoffset));
  285.   SETREG(D1,LONG(voffset));
  286.   SETREG(A2,languagetextarray);
  287.   INLINE(JSRA6,LVOICreateGadgets);
  288.   RETURN ADDRESS(REG(D0))
  289. END ICreateGadgets;
  290.  
  291. PROCEDURE IFreeGadgets(gl:ADDRESS);
  292.  
  293. BEGIN
  294.   SETREG(A6,IntuiSupBase);
  295.   SETREG(A0,gl);
  296.   INLINE(JSRA6,LVOIFreeGadgets);
  297. END IFreeGadgets;
  298.  
  299. PROCEDURE IDisplayGadgets(win:WindowPtr; gl:ADDRESS);
  300.  
  301. BEGIN
  302.   SETREG(A6,IntuiSupBase);
  303.   SETREG(A0,win);
  304.   SETREG(A1,gl);
  305.   INLINE(JSRA6,LVOIDisplayGadgets);
  306. END IDisplayGadgets;
  307.  
  308. PROCEDURE IRefreshGadgets(gl:ADDRESS);
  309.  
  310. BEGIN
  311.   SETREG(A6,IntuiSupBase);
  312.   SETREG(A0,gl);
  313.   INLINE(JSRA6,LVOIRefreshGadgets)
  314. END IRefreshGadgets;
  315.  
  316. PROCEDURE IModifyGadget(gl:ADDRESS; dataentry:CARDINAL; leftedge, 
  317.                         topedge:LONGINT; width, height : LONGCARD);
  318.  
  319. BEGIN
  320.   SETREG(A6,IntuiSupBase);
  321.   SETREG(A0,gl);
  322.   SETREG(D0,LONG(dataentry));
  323.   SETREG(D1,LONG(leftedge));
  324.   SETREG(D2,LONG(topedge));
  325.   SETREG(D3,LONG(width));
  326.   SETREG(D4,LONG(height));
  327.   INLINE(JSRA6,LVOIModifyGadget);
  328. END IModifyGadget;
  329.  
  330. PROCEDURE ISetGadgetAttributes(gl:ADDRESS; dataentry:CARDINAL;
  331.                               flagmask, flagbits:LONGCARD;
  332.                               data1, data2:LONGINT; data3:ADDRESS):LONGCARD;
  333.  
  334. BEGIN
  335.   SETREG(A6,IntuiSupBase);
  336.   SETREG(A0,gl);
  337.   SETREG(D0,LONG(dataentry));
  338.   SETREG(D1,flagmask);
  339.   SETREG(D2,flagbits);
  340.   SETREG(D3,data1);
  341.   SETREG(D4,data2);
  342.   SETREG(A1,data3);
  343.   INLINE(JSRA6,LVOISetGadgetAttributes);
  344.   RETURN LONGCARD(REG(D0))
  345. END ISetGadgetAttributes;
  346.  
  347. PROCEDURE IActivateInputGadget(gl:ADDRESS; dataentry:CARDINAL);
  348.  
  349. BEGIN
  350.   SETREG(A6,IntuiSupBase);
  351.   SETREG(A0,gl);
  352.   SETREG(D0,LONG(dataentry));
  353.   INLINE(JSRA6,LVOIActivateInputGadget);
  354. END IActivateInputGadget;
  355.  
  356. PROCEDURE IGadgetAddress(gl:ADDRESS; dataentry:CARDINAL):GadgetPtr;
  357.  
  358. BEGIN
  359.   SETREG(A6,IntuiSupBase);
  360.   SETREG(A0,gl);
  361.   SETREG(D0,LONG(dataentry));
  362.   INLINE(JSRA6,LVOIGadgetAddress);
  363.   RETURN GadgetPtr(REG(D0))
  364. END IGadgetAddress;
  365.  
  366. PROCEDURE IRemoveGadgets(gl:ADDRESS):WindowPtr;
  367.  
  368. BEGIN
  369.   SETREG(A6,IntuiSupBase);
  370.   SETREG(A0,gl);
  371.   INLINE(JSRA6,LVOIRemoveGadgets);
  372.   RETURN WindowPtr(REG(D0))
  373. END IRemoveGadgets;
  374.  
  375. PROCEDURE IGetMsg(uport:MsgPortPtr):IntuiMessagePtr;
  376.  
  377. BEGIN
  378.   SETREG(A6,IntuiSupBase);
  379.   SETREG(A0,uport);
  380.   INLINE(JSRA6,LVOIGetMsg);
  381.   RETURN IntuiMessagePtr(REG(D0))
  382. END IGetMsg;
  383.  
  384. PROCEDURE IReplyMsg(imsg:IntuiMessagePtr);
  385.  
  386. BEGIN
  387.   SETREG(A6,IntuiSupBase);
  388.   SETREG(A0,imsg);
  389.   INLINE(JSRA6,LVOIReplyMsg);
  390. END IReplyMsg;
  391.  
  392. PROCEDURE IConvertRawKeyToASCII(imsg:IntuiMessagePtr);
  393.  
  394. BEGIN
  395.   SETREG(A6,IntuiSupBase);
  396.   SETREG(A0,imsg);
  397.   INLINE(JSRA6,LVOIConvertRawKeyToASCII);
  398. END IConvertRawKeyToASCII;
  399.  
  400. PROCEDURE IAutoRequest(reqwin:WindowPtr; title,  bodytext, postext, 
  401.                        negtext:ADDRESS; posidcmpflags,
  402.                        negidcmpflags:IDCMPFlagsSet; reqflags:CARDINAL;
  403.                        languagetextarray:DADDRESS):BOOLEAN;
  404.  
  405. BEGIN
  406.   SETREG(A6,IntuiSupBase);
  407.   SETREG(A0,reqwin);
  408.   SETREG(A1,title);
  409.   SETREG(A2,bodytext);
  410.   SETREG(A3,postext);
  411.   SETREG(D0,negtext);
  412.   SETREG(D1,posidcmpflags);
  413.   SETREG(D2,negidcmpflags);
  414.   SETREG(D3,LONG(reqflags));
  415.   SETREG(D4,languagetextarray);
  416.   INLINE(JSRA6,LVOIAutoRequest);
  417.   RETURN BOOLEAN(REG(D0))
  418. END IAutoRequest;
  419.  
  420. PROCEDURE IDisplayRequester(reqwin:WindowPtr; rd:RequesterDataPtr;
  421.                             languagetextarray:DADDRESS):ADDRESS;
  422.  
  423. BEGIN
  424.   SETREG(A6,IntuiSupBase);
  425.   SETREG(A0,reqwin);
  426.   SETREG(A1,rd);
  427.   SETREG(A2,languagetextarray);
  428.   INLINE(JSRA6,LVOIDisplayRequester);
  429.   RETURN ADDRESS(REG(D0))
  430. END IDisplayRequester;
  431.  
  432. PROCEDURE IRemoveRequester(rl:ADDRESS);
  433.  
  434. BEGIN
  435.   SETREG(A6,IntuiSupBase);
  436.   SETREG(A0,rl);
  437.   INLINE(JSRA6,LVOIRemoveRequester);
  438. END IRemoveRequester;
  439.  
  440. PROCEDURE ICreateMenu(ri:ADDRESS; win:WindowPtr; md:MenuDataPtr;
  441.                       ta:TextAttrPtr; languagetextarray:DADDRESS):ADDRESS;
  442.  
  443. BEGIN
  444.   SETREG(A6,IntuiSupBase);
  445.   SETREG(A0,ri);
  446.   SETREG(A1,win);
  447.   SETREG(A2,md);
  448.   SETREG(A3,ta);
  449.   SETREG(D0,languagetextarray);
  450.   INLINE(JSRA6,LVOICreateMenu);
  451.   RETURN ADDRESS(REG(D0))
  452. END ICreateMenu;
  453.  
  454. PROCEDURE IAttachMenu(win:WindowPtr; ml:ADDRESS);
  455.  
  456. BEGIN
  457.   SETREG(A6,IntuiSupBase);
  458.   SETREG(A0,win);
  459.   SETREG(A1,ml);
  460.   INLINE(JSRA6,LVOIAttachMenu)
  461. END IAttachMenu;
  462.  
  463. PROCEDURE IMenuItemAddress(ml:ADDRESS; menunum:CARDINAL):MenuItemPtr;
  464.  
  465. BEGIN
  466.   SETREG(A6,IntuiSupBase);
  467.   SETREG(A0,ml);
  468.   SETREG(D0,LONG(menunum));
  469.   INLINE(JSRA6,LVOIMenuItemAddress);
  470.   RETURN MenuItemPtr(REG(D0))
  471. END IMenuItemAddress;
  472.  
  473. PROCEDURE IRemoveMenu(ml:ADDRESS):WindowPtr;
  474.  
  475. BEGIN
  476.   SETREG(A6,IntuiSupBase);
  477.   SETREG(A0,ml);
  478.   INLINE(JSRA6,LVOIRemoveMenu);
  479.   RETURN WindowPtr(REG(D0))
  480. END IRemoveMenu;
  481.  
  482. PROCEDURE IFreeMenu(ml:ADDRESS);
  483.  
  484. BEGIN
  485.   SETREG(A6,IntuiSupBase);
  486.   SETREG(A0,ml);
  487.   INLINE(JSRA6,LVOIFreeMenu);
  488. END IFreeMenu;
  489.  
  490. PROCEDURE IOpenTextFile(name:ADDRESS; readbuffersize, linebuffersize,
  491.                         flags:CARDINAL):FileDataPtr;
  492.  
  493. BEGIN
  494.   SETREG(A6,IntuiSupBase);
  495.   SETREG(A0,name);
  496.   SETREG(D0,LONG(readbuffersize));
  497.   SETREG(D1,LONG(linebuffersize));
  498.   SETREG(D2,LONG(flags));
  499.   INLINE(JSRA6,LVOIOpenTextFile);
  500.   RETURN FileDataPtr(REG(D0))
  501. END IOpenTextFile;
  502.  
  503. PROCEDURE IReadTextLine(fd:FileDataPtr):INTEGER;
  504.  
  505. BEGIN
  506.   SETREG(A6,IntuiSupBase);
  507.   SETREG(A0,fd);
  508.   INLINE(JSRA6,LVOIReadTextLine);
  509.   RETURN INTEGER(REG(D0))
  510. END IReadTextLine;
  511.  
  512. PROCEDURE ICloseTextFile(fd:FileDataPtr);
  513.  
  514. BEGIN
  515.   SETREG(A6,IntuiSupBase);
  516.   SETREG(A0,fd);
  517.   INLINE(JSRA6,LVOICloseTextFile);
  518. END ICloseTextFile;
  519.  
  520. PROCEDURE IBuildLanguageTextArray(name:ADDRESS; entries:CARDINAL):DADDRESS;
  521.  
  522. BEGIN
  523.   SETREG(A6,IntuiSupBase);
  524.   SETREG(A0,name);
  525.   SETREG(D0,LONG(entries));
  526.   INLINE(JSRA6,LVOIBuildLanguageTextArray);
  527.   RETURN DADDRESS(REG(D0))
  528. END IBuildLanguageTextArray;
  529.  
  530. PROCEDURE IGetLanguageText(text:ADDRESS; textarray:DADDRESS):ADDRESS;
  531.  
  532. BEGIN
  533.   SETREG(A6,IntuiSupBase);
  534.   SETREG(A0,text);
  535.   SETREG(A1,textarray);
  536.   INLINE(JSRA6,LVOIGetLanguageText);
  537.   RETURN ADDRESS(REG(D0))
  538. END IGetLanguageText;
  539.  
  540. PROCEDURE IFreeLanguageTextArray(textarray:DADDRESS);
  541.  
  542. BEGIN
  543.   SETREG(A6,IntuiSupBase);
  544.   SETREG(A0,textarray);
  545.   INLINE(JSRA6,LVOIFreeLanguageTextArray);
  546. END IFreeLanguageTextArray;
  547.  
  548. PROCEDURE IChangeMousePointer(win:WindowPtr; pd:PointerDataPtr; removegadgets:BOOLEAN);
  549.  
  550. BEGIN
  551.   SETREG(A6,IntuiSupBase);
  552.   SETREG(A0,win);
  553.   SETREG(A1,pd);
  554.   SETREG(D0,LONG(removegadgets));
  555.   INLINE(JSRA6,LVOIChangeMousePointer);
  556. END IChangeMousePointer;
  557.  
  558. PROCEDURE IRestoreMousePointer(win:WindowPtr);
  559.  
  560. BEGIN
  561.   SETREG(A6,IntuiSupBase);
  562.   SETREG(A0,win);
  563.   INLINE(JSRA6,LVOIRestoreMousePointer);
  564. END IRestoreMousePointer;
  565.  
  566. PROCEDURE IMoveMousePointer(win:WindowPtr; x,y:INTEGER; button:BOOLEAN);
  567.  
  568. BEGIN
  569.   SETREG(A6,IntuiSupBase);
  570.   SETREG(A0,win);
  571.   SETREG(D0,LONG(x));
  572.   SETREG(D1,LONG(y));
  573.   SETREG(D2,LONG(button));
  574.   INLINE(JSRA6,LVOIMoveMousePointer);
  575. END IMoveMousePointer;
  576.  
  577. (* ------------------------- Funciones de apoyo --------------------------*)
  578.  
  579. PROCEDURE InputAutoActive(next,prev:LONGINT):LONGINT;
  580.  (* macro *)
  581.  
  582. BEGIN
  583.   RETURN next*M+prev
  584. END InputAutoActive;
  585.  
  586. PROCEDURE InitIntuiSupLibNoVer():BOOLEAN;
  587.  
  588. VAR
  589.   result :BOOLEAN;
  590.  
  591. BEGIN
  592.   result := FALSE;
  593.   IntuiSupBase := OpenLibrary(ADR(IntuiSupName),0);
  594.   IF (IntuiSupBase # NIL) THEN
  595.      result := TRUE
  596.   END;
  597.   RETURN result
  598. END InitIntuiSupLibNoVer;
  599.  
  600. PROCEDURE InitIntuiSupLib():BOOLEAN;
  601.  
  602. VAR
  603.   result :BOOLEAN;
  604.  
  605. BEGIN
  606.   result := FALSE;
  607.   IntuiSupBase := OpenLibrary(ADR(IntuiSupName),IntuiSupVersion);
  608.   IF (IntuiSupBase # NIL) THEN
  609.      result := TRUE
  610.   END;
  611.   RETURN result
  612. END InitIntuiSupLib;
  613.  
  614. PROCEDURE CloseIntuiSupLib();
  615.  
  616. BEGIN
  617.   CloseLibrary(IntuiSupBase^);
  618.   IntuiSupBase := NIL;
  619. END CloseIntuiSupLib;
  620.  
  621. BEGIN
  622.   IntuiSupBase := NIL
  623. END IntuiSupInterface.
  624.